針對 CoaXPress over Fiber 擷取卡的 Data Forwarding

在 imaFlex 2 Dual 100 平臺上的 Data Forwarding

簡要說明

檔案: \Examples\Acquisition\DataForwarding\iF2D100\DFExample_Host.vad
\Examples\Acquisition\DataForwarding\iF2D100\DFExample_Client_MidPosition.vad
\Examples\Acquisition\DataForwarding\iF2D100\DFExample_Client_EndPosition.vad
\Examples\Acquisition\DataForwarding\iF2D100\hap\DFExample_Host.hap\DFExample_Host.hap
\Examples\Acquisition\DataForwarding\iF2D100\hap\DFExample_Client_MidPosition.hap
\Examples\Acquisition\DataForwarding\iF2D100\hap\DFExample_Client_EndPosition.hap
\Examples\Acquisition\DataForwarding\SDK

預設平台: iF2D100

短說明

本文介紹了 imaFlex 2 Dual 100 平台上的資料轉送實作。

採用菊花鏈連接擷取卡的典型資料轉送環境如下所示:

菊花鏈擷取卡(資料轉送)

圖 233. 菊花鏈擷取卡(資料轉送)


左側的第一個裝置作為後續連接用戶端(從屬裝置)的主機(主裝置)。主機裝置接收到的資料(例如來自相機的資料)會轉送給用戶端。根據具體使用情境,用戶端會轉送完整的原始串流資料或僅轉送其中一部分。這種行為會在裝置之間持續進行,直至菊花鏈的末端。

Basler imaFlex 2 Dual 100 的資料轉送功能不僅允許轉送影像資料,還允許轉送元資料,例如用於遠端控制用戶端裝置。以下章節將透過一個基本範例來示範這兩個方面。

用法

範例 Applet 旨在與對應的資料轉送 SDK 範例應用程式搭配使用 DFMaster 和 DFSlave。因此,無需手動載入 Applet(例如透過 microDisplay X)。SDK 範例應用程式會自動載入 Applet,且所有使用者互動均完全透過主機(主裝置)應用程式進行。

如需有關使用擷取卡 SDK 用戶端指令碼的資訊,請參閱位於以下位置的對應指令碼說明文件: examples\Acquisition\DataForwarding\SDK 位於 VisualApplets 安裝目錄中。

Data Forwarding 範例 Applets

這些範例 Applet 從以下兩個方面展示了資料轉送功能:

  1. 將影像資料從主機傳輸到其後續用戶端。

  2. 遠端控制和監控用戶端。

Data Forwarding VisualApplets Applets

影像資料傳輸非常直接且易於實作。每個範例 Applet 都在其影像路徑中展示了這一點。

遠端控制和監控需要更多的處理,因為您無法使用來自 VisualApplets 連結(例如傳入的控制命令)的資料來動態變更 Applet 參數。您可以使用 VisualApplets 事件系統來解決此限制。遠端控制元資料路徑示範了這種方法。

儘管 Applet 設計將這兩個路徑分開顯示,但對於單一裝置對而言,這兩個路徑共用相同的光纖資源。影像資料透過編號 0 到 3 的全部四條光纖通道進行傳輸,而遠端控制資料/元資料則使用同一光纖模組的通道 0。

換句話說,光纖模組的 2×4 通道以雙向方式連接兩個裝置,用於傳輸影像和元資料。對應的資料轉送運算子 DFTxImage、DFTxMeta、DFRxImage 和 DFRxMeta 會在內部管理這項作業。

下表總結了範例中實作的資料轉送連接。

光纖連接埠 主機 中間用戶端 末端用戶端
連接埠 0 保留(例如相機) 上一頁 上一頁
port1 下一個 下一個 —

表 17. 資料轉發連接(光纖連接埠)


如需關於範例設計檔案處理結構的詳細文件, 請參閱對應項目中的註解方塊 *.vad 設計。

VisualApplets 事件系統與 Data Forwarding 遠端控制

使用 VisualApplets 事件系統進行遠端控制的概念在於, Framegrabber SDK API 提供了用於存取運算子和 applet 參數的常式。透過 VisualApplets 事件系統,可以將包含酬載資料的事件從 applet 傳送至主機 PC,而事件監控 SDK 應用程式可以對此酬載做出反應。

基於此概念,遠端控制訊號流程如下:

  • 主機 applet 會向用戶端傳送命令。

  • 在用戶端 applet 中,每個接收到的控制命令都會觸發一個事件(包含 酬載)。

  • 該事件會被擷取器作業系統驅動程式擷取。

  • 事件監控 SDK 應用程式會根據 對事件酬載的解讀來執行 SDK 常式。

使用者定義的遠端控制通訊協定

資料轉發範例使用使用者自訂的通訊協定。在此範圍內, 命令交易稱為 message。訊息的結構 如下所示:

位元索引 描述 大小 (位元)
[55] 讀寫旗標 1
[54:48] 用戶端(從屬)裝置位址 7
[47:32] 軟體可存取的暫存器位址 16
[31:0] 軟體可存取的暫存器資料 32

表 18. 訊息位元配置


訊息總計 56 位元,這對應於 DFTxMeta 和 DFRxMeta 運算子的一個資料字大小。

message trigger 會啟動訊息。SDK 主機應用程式 會設定訊息內容與觸發條件。

一般而言,在 VisualApplets 連結上傳輸的資料可以透過不同的方式進行處理。針對資料轉發範例,以下兩種處理方式非常相關:

  1. 系統直接使用命令資料位元。例如,它將專用位元轉換為 VALT_SIGNAL 並將其路由至 GPO 庫。

  2. 系統會觸發 VisualApplets 事件,並且可以包含從遠端命令中提取的酬載資料。

第一種處理方式代表 hardware command。系統使用訊息位元作為訊號來源來觸發專用動作。第二種處理方式代表 software command,因為驅動程式軟體會處理傳送至主機 PC 的事件。資料轉發範例實作了這兩種命令類型,並以 software command 為重點。